
import { getUserList, updateUserInfo } from "@/api/user";
import { Message } from 'element-ui'

const userStore = {
    //命名空间，开启可以更加方便读取state
    //  不加：...mapState('vuexPerson')后需要 vuexPerson.num读取
    //  加了: ...mapState('vuexPerson',['num','person_list']) 直接num读取
    namespaced: true,
    state: {
        searchContent: '', //keyword
        currentPage: 1,
        pageNum: 3,
        totalNum: 0,
        userList: [
            // {
            // mg_id:500,
            // mg_avatar: null,
            // mg_email: "601271628@qq.com",
            // mg_mobile: "17520627324",
            // mg_name: "admin",
            // mg_state: 1,
            // role_name: "超级管理员",
            // role_id:42
            // mg_del:0
            // },
        ]
    },
    mutations: {
        get_User_List(state, res) {
            // console.log(res);
            state.userList = res.data.data.userList;
            state.totalNum = res.data.data.totalNum;
            // console.log(state.userList);
            // console.log(state.totalNum);
        }
    },
    actions: {
        /*
            使用...mapActions("userStore", ["get_user_list"]),
                this.get_user_list
            直接：
                this.$store.dispatch("userStore/get_user_list")
        */
        get_user_list(context) {
            // console.log(context);
            getUserList(context.state.currentPage, context.state.pageNum, context.state.searchContent).then(
                (res) => {
                    if (res.status === 200) {
                        return context.commit('get_User_List', res)
                    }
                    console.log("获取列表失败");
                },
                (err) => {
                    console.log(err);
                }
            );
        },
        update_user_info(context, { mg_id: mg_id, isFormData: isFormData }) {
            let newUserInfo = {}
            context.state.userList.some(item => {
                if (item.mg_id === mg_id) {
                    newUserInfo = item
                    return true
                }
            })
            //如果是isFormData（含头像更新）
            if (isFormData) {
                let fd = new FormData();
                Object.keys(newUserInfo).forEach(key => {
                    fd.append(key, newUserInfo[key])
                })
                newUserInfo = fd
            }
            updateUserInfo(newUserInfo).then(res => {
                console.log(res.data);
                if (res.status === 200) {
                    return Message({
                        type: "success",
                        message: "更新成功!",
                    });
                }
                Message({
                    type: "error",
                    message: "更新失败!",
                });
            }, err => {
                console.log(err);
                Message({
                    type: "error",
                    message: "更新失败!",
                });
            })
        }
    },
}

export default userStore